package com.klm.service;

import com.klm.entity.TranslatePlatformUsageEntity;
import java.time.LocalDate;
import java.util.List;

public interface TranslatePlatformUsageService {
    // 记录平台使用量（字节数和请求次数）
    void recordUsage(String platformCode, long bytes);

    // 获取平台今日使用量
    TranslatePlatformUsageEntity getTodayUsage(String platformCode);

    // 获取平台指定日期的使用量
    TranslatePlatformUsageEntity getUsageByDate(String platformCode, LocalDate date);

    // 获取平台指定日期范围的使用量记录
    List<TranslatePlatformUsageEntity> getUsageByDateRange(String platformCode, LocalDate startDate, LocalDate endDate);

    // 获取平台指定日期范围的累计字节数
    long getTotalBytesByDateRange(String platformCode, LocalDate startDate, LocalDate endDate);

    // 获取平台指定日期范围的累计请求次数
    int getTotalRequestsByDateRange(String platformCode, LocalDate startDate, LocalDate endDate);

    // 重置指定平台的使用量
    void resetUsage(String platformCode);

    // 检查并重置所有需要重置的平台（根据重置规则）
    void checkAndResetAllPlatforms();
}
